package com.hqyj.lx.controller;

import com.hqyj.lx.pojo.Admin;
import com.hqyj.lx.pojo.Student;
import com.hqyj.lx.service.AdminService;
import com.hqyj.lx.service.StudentService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpSession;

@Controller
@RequestMapping("/UserLogin")
public class LoginController {

    @Autowired
    private AdminService adminService;

    @Autowired
    private StudentService studentService;

    //页面通用跳转方法
    @RequestMapping("/{page}")
    public String toPage(@PathVariable() String page) {
        return page;
    }

    /*用户登录*/
    @RequestMapping("/loginCheck")
    public ModelAndView loginCheck(String userName, String passWord, HttpSession session, String type) {
        //创建ModelAndView对象
        ModelAndView mv = new ModelAndView();
        //获取前台页面传递进来的参数
        System.out.println("用户名:" + userName + "密码:" + passWord+"类型:"+type);
        //判断前端输入的用户角色，type=0进行学生登录验证，type=1进行老师登录验证，type=2进行管理员登录验证，
        //判断登录时选择的身份类型是否为空
        if (!"".equals(type)) {
            //System.out.println("身份类型非空");
            //身份选择不为空，则进行身份类型判断，
            if ("0".equals(type)) {   //type=0进行学生登录验证
               //调用studentService的登录方法
                Student login = studentService.login(userName, passWord);
                //System.out.println(login);
                //判断数据库中是否查询到输入的用户信息
                if(login != null){
                    //密码判断
                    if(login.getsPassword().equals(passWord)){
                        //密码正确
                        //使用session进行数据共享
                        session.setAttribute("student",login);
                        session.setAttribute("sId",login.getsId());
                        session.setAttribute("sName",login.getsName());
                        session.setAttribute("sPassword",login.getsPassword());
                        session.setAttribute("type",type);
                        mv.addObject("student",login);
                        //请求转发
                        mv.setViewName("forward:/kaoShengIndex.jsp");
                    }else {
                        //密码错误
                        session.setAttribute("error", "用户名或密码错误");
                        mv.setViewName("redirect:/login.jsp");
                    }
                }else {
                    //未查询到输入的学生信息
                    session.setAttribute("error", "用户名或密码不能为空");
                    mv.setViewName("redirect:/login.jsp");
                }
                //最终返回modelandview对象
                return mv;

            }

            if ("2".equals(type)) {   //type=2进行管理员登录验证
                //调用adminService登录方法
                Admin login = adminService.login(userName, passWord);
                //System.out.println(login);
                //判断数据库是否查询到前台页面输入的用户信息
                if (login != null) {
                    //密码判断,密码正确
                    if (login.getSysPwd().equals(passWord)) {
                        //使用session进行数据共享
                        session.setAttribute("admin", login);
                        session.setAttribute("sysName", login.getSysName());
                        session.setAttribute("sysId", login.getSysId());
                        session.setAttribute("type",type);
                        mv.addObject("admin",login);
                        //请求转发
                        mv.setViewName("forward:/index.jsp");
                    } else {
                        //密码错误
                        System.out.println("密码错误");
                        session.setAttribute("error", "用户名或密码错误");
                        mv.setViewName("redirect:/login.jsp");
                    }
                } else {
                    //查询为空,即不存在该管理员用户
                    System.out.println("未查询到信息");
                    session.setAttribute("error", "用户名或密码不能为空");
                    mv.setViewName("redirect:/login");
                }
                //最终返回modelandview对象
                return mv;
            }

        } else {
            //身份类型未选择
        }

        return mv;

    }


}
